home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / presto / presto10.lha / makelinks < prev    next >
Text File  |  1991-12-11  |  2KB  |  89 lines

  1. #! /bin/sh
  2.  
  3. # This script sets up whole directories of symbolic links
  4. # so that we can build target-specific versions of Presto.
  5.  
  6. CCSUFFIX=C # suffix used for C++ files
  7.  
  8. usage="<target>"
  9.  
  10. if [ $# -lt 1 ] ; then
  11.     echo "usage: `basename $0` $usage"
  12.     exit 1
  13. fi
  14.  
  15. if [ ! -f src/Makefile.$1 ] ; then
  16.     echo "no makefile for target \"$1\""
  17.     exit 1
  18. fi
  19.  
  20. if [ -f $1/Base/presto.h -o -f $1/presto.h ] ; then
  21.     echo links already created - use \"rmlinks $1\" to remove
  22.     exit 0
  23. fi
  24.  
  25. mkdir $1 $1/Base $1/Base_debug $1/test > /dev/null 2>&1 
  26. topdir=`pwd`
  27.  
  28. # Now go into the source directory, and create all
  29. # the links.
  30.  
  31. echo linking Makefile ...
  32. ln -s $topdir/src/Makefile.$1 $1/Makefile
  33. cd src
  34. here=`pwd`
  35. echo creating source file links ...
  36. for file in *.$CCSUFFIX *.c *.h *.s
  37. do
  38.     ln -s $here/$file ../$1/$file
  39.  
  40. # On the sequent, these two are not necessary 
  41. # because make(1) supports the VPATH search variable.
  42. # Other platforms get 3 symbolic links per source file. Yuk.
  43.     
  44.     if [ "$1" != "sequent" ] ; then
  45.         ln -s $here/$file ../$1/Base/$file
  46.         ln -s $here/$file ../$1/Base_debug/$file
  47.     fi
  48. done
  49.  
  50. # however, on a Sequent, we do need access from cpp to the asmdefs.h
  51. # file, from each of the Base and Base_debug dirs. This file gets
  52. # prepended to cfront's output before /bin/cc gets it. cpp can't find
  53. # it since it doesn't know about VPATH, like make does.
  54.  
  55. if [ "$1" = "sequent" ] ; then
  56.     ln -s $here/asmdefs.h ../$1/Base
  57.     ln -s $here/asmdefs.h ../$1/Base_debug
  58. fi
  59.  
  60. # Now go to the test directory, and link all these files
  61. # into the target.
  62.  
  63. if [ "$1" = mips ] ; then
  64.     TESTS="exer fork burner"
  65. else
  66.     TESTS="exer sos fork burner barrier"
  67. fi
  68.  
  69. # Now copy all the test programs over
  70.  
  71. cd ../Tests
  72. here=`pwd`
  73. ln -s $here/Makefile.$1 ../$1/test/Makefile
  74. ln -s $here/make.h.$1 ../$1/test/make.h
  75. ln -s $here/runtests.$1 ../$1/test/runtests
  76. for test in $TESTS
  77. do
  78.     echo creating links for test \"$test\" ...
  79.     mkdir ../$1/test/$test >/dev/null 2>&1
  80.     ln -s $here/$test/*.C ../$1/test/$test
  81.     ln -s $here/$test/*.h ../$1/test/$test
  82.     ln -s $here/$test/Makefile ../$1/test/$test
  83.     ln -s $here/$test/runtests $test/README ../$1/test/$test
  84. done
  85. exit 0
  86.  
  87.  
  88.  
  89.